package com.cong.modules.sys.service;

import java.util.List;
import java.util.Set;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cong.modules.sys.model.SysMenu;
import com.cong.modules.sys.model.SysUser;

public interface MenuService extends IService<SysMenu>{

	/**
	 * 根据用户id查询权限集合
	 *
	 * @param userId 用户ID
	 */
	Set<String> listPermsByUserId(Long userId);

	/**
	 * 查询全部权限
	 *
	 * @param status 状态值
	 */
	List<SysMenu> listAllPermsByStatus(Integer status);

	/**
	 * 查询全部权限菜单名
	 *
	 * @param status 状态值
	 */
	List<SysMenu> listAllMenuName(Integer status);

	/**
	 * 删除菜单
	 *
	 * @param menuId 菜单ID
	 */
	int deleteMenuByMenuId(Long menuId);

	/**
	 * 根据权限id查询权限
	 *
	 * @param menuId 菜单ID
	 */
	SysMenu getSysMenuByMenuId(Long menuId);

	/**
	 * 更新权限
	 *
	 * @param menu 菜单数据
	 */
	int updateSysMenuByMenuId(SysMenu menu);

	/**
	 * 根据登录用户查询用户菜单
	 *
	 * @param user 用户数据
	 */
	List<SysMenu> listMenusByUser(SysUser user);

	/**
	 * 查询子菜单数量
	 *
	 * @param menuId 菜单ID
	 */
	int countMenuByParentId(Long menuId);

	/**
	 * 菜单使用数量
	 *
	 * @param menuId 菜单ID
	 */
	int countRoleMenuByMenuId(Long menuId);

}
